A new class of forward error correcting codes that use parallel concatenated recursive codes, also known as “turbo codes,” plays a key role in wireless communications, see C. Berrou and A. Glavieux, “Near optimum error-correcting coding and decoding: turbo-codes,” IEEE Trans. Comm., vol. 44, pp.1261-1271, 1996. Turbo codes offer significant coding gain for power limited communication channels using, for example, wideband code division multiple access (WCDMA).
Typically, turbo codes are generated by using recursive systematic convolution (RSC) encoders operating on different permutations of each input bit. A subset of the output bits generated by the encoders is transmitted through the channel to maintain bandwidth efficiency. Turbo decoding involves an iterative process in which probability estimates of the input bits are derived from the received bits. Each iteration of the processing generally increases the reliability of the probability estimates. This process continues, alternately decoding the received bits, until the probability estimates can be used to make reliable decisions.
Turbo codes have near optimal performance in terms of coding gain, that is, they approach the Shannon limit, see C. Berrou et al. entitled “Near Shannon Limit Error-Correcting Coding And Decoding: Turbo-Codes,” Proceedings of the IEEE International Conference on Communications, pages 1064-1070, 1993. However, turbo codes suffer from a complex decoding process. This complexity comes from the soft output processing and the iterative nature of the decoder. The complexity grows exponentially with respect to the number of states in a decoding trellis.
Turbo encoders can have various coding rates. A code rate is the ratio of the number of input bits to the number of output bits transmitted on the channel. For example, in a 1/2 rate turbo encoder, there are two output bits for each input bit. In many applications, such as high speed down link packet access (HSDPA), turbo codes with lower coding rates, such as a 1/4 code rate, are used. Lower coding rates combat some severe channel conditions. Decreasing the code rate improves the bit-error rate (BER) performance. However, for a fixed data rate, decreasing the code rate increases the transmission symbol rates. If a channel is bandwidth limited, then limited transmission symbol rates are required.
One way of not increasing the transmission symbol rate while achieving a low code rate performance is to “puncture” the transmitted symbols. Puncturing is a process of deleting a portion of transmitted symbols. The puncturing process is characterized by a puncture pattern used by the turbo encoder. The turbo decoder implements a bit insertion process that is the inverse function of the puncturing process. Bit insertion adds bits to the received bit sequence according an insertion pattern.
One way to get a 1/4 turbo code is to punctures a 1/5 turbo code produced by two (RSC) codes both have the coding rate of 1/3. This conventional way achieves a high code rate from the lower code rate, see J. Hagenauer, “Rate-compatible punctured convolutional codes (RCPC codes) and their applications,” IEEE Trans. Comm., vol. 36, is. 4, pp.389-400, April 1988.
FIG. 1 shows a prior art 1/4 rate turbo encoder 100 with two (RSC) 1/3 rate coders 111-112. For each input bit 101, the two RSC coders 111-112 produce five output bits 102. In order to attain a 1/4 rate turbo code, a puncture pattern 120, e.g., [111111;111111;101010;111111;101010], is used to reduce the five output bits to four transmitted bits 103.
This puncture pattern completely embeds the data generated at the higher code rate into the data generated at the lower rate. Therefore, the decoder for the lowest code rate is applicable to any data generated by a punctured high code rate. In this case, the decoding complexity is actually determined by the decoder with the lowest code rate, i.e., 1/5 rate turbo code, which corresponds to the number of states in a decoding trellis. This scheme guarantees good performance in adaptive white Gaussian noise (AWGN) channels with a high coding gain. However, puncturing and corresponding bit insertion results in degradation of the BER performance while decreasing the transmission symbol rate to be within the acceptable channel bandwidth.
Therefore, it is desired to provide a 1/4 rate turbo coding process with good BER performance and less complexity.